CC = g++

a.out: Main.cpp CircuitCreator.o NodeFactory.o Node.o Xor.o And.o Or.o Not.o Probe.o FileProcesser.o Input.o 
	$(CC) -g Main.cpp CircuitCreator.o NodeFactory.o Node.o Xor.o And.o Or.o Not.o Probe.o FileProcesser.o Input.o 

CircuitCreator.o: CircuitCreator.cpp CircuitCreator.h
	$(CC) -c -g CircuitCreator.cpp

FileProcesser.o: FileProcesser.cpp FileProcesser.h
	$(CC) -c -g FileProcesser.cpp

NodeFactory.o: NodeFactory.cpp Node.h
	$(CC) -c -g NodeFactory.cpp

Node.o: Node.cpp Node.h
	$(CC) -c -g Node.cpp

Xor.o: node-types/Xor.cpp node-types/Xor.h
	$(CC) -c -g node-types/Xor.cpp

And.o: node-types/And.cpp node-types/And.h
	$(CC) -c -g node-types/And.cpp

Or.o: node-types/Or.cpp node-types/Or.h
	$(CC) -c -g node-types/Or.cpp

Not.o: node-types/Not.cpp node-types/Not.h
	$(CC) -c -g node-types/Not.cpp

Input.o: node-types/Input.cpp node-types/Input.h
	$(CC) -c -g node-types/Input.cpp

Probe.o: node-types/Probe.cpp node-types/Probe.h
	$(CC) -c -g node-types/Probe.cpp

run: a.out
	./a.out

open: 
	geany *.cpp *.h

opennodes:
	geany node-types/*.cpp node-types/*.h

clean:
	rm *.o a.out
